home *** CD-ROM | disk | FTP | other *** search
/ Oh!X 2001 Spring / Oh!X 2001 Spring Special CD-ROM (Japan).7z / Oh!X 2001 Spring Special CD-ROM (Japan) (Track 1).bin / FBENC / TEC-FB^3.sea / TEC-FB^3 / UnicodeConverter.Incl < prev    next >
Text File  |  2000-03-24  |  5KB  |  156 lines

  1. /*
  2.   File:  UnicodeConverter.h
  3.  
  4.   Contains: Types, constants, and prototypes for Unicode Converter
  5.  
  6.   Version: Mac OS 8.7
  7.  
  8.   DRI:  Julio Gonzalez
  9.  
  10.   Copyright: ゥ 1994-1999 by Apple Computer, Inc., all rights reserved.
  11.  
  12.   Warning: *** APPLE INTERNAL USE ONLY ***
  13.      This file may contain unreleased API's
  14.  
  15.   BuildInfo: Built by:   BuildGod
  16.      On:     09/17/99 11:19 AM
  17.      With Interfacer: 3.0d13   (MPW PowerPC)
  18.      From:    UnicodeConverter.i
  19.       Revision:  14
  20.       Dated:   5/20/99
  21.       Last change by: ngk
  22.       Last comment: Add CarbonLib exportset to ProcPtrs
  23.  
  24.   Bugs:  Report bugs to Radar component "System Interfaces", "Latest"
  25.      List the version information (from above) in the Problem Description.
  26.  
  27. */
  28.  
  29.  
  30. /* Unicode conversion contexts: */
  31. #DEFINE TextToUnicodeInfo AS POINTER// TO OpaqueTextToUnicodeInfo
  32. #DEFINE UnicodeToTextInfo AS POINTER// TO OpaqueUnicodeToTextInfo
  33. #DEFINE UnicodeToTextRunInfo AS POINTER// TO OpaqueUnicodeToTextRunInfo
  34. #DEFINE ConstTextToUnicodeInfo  AS TextToUnicodeInfo
  35. #DEFINE ConstUnicodeToTextInfo AS UnicodeToTextInfo
  36. /* UnicodeMapVersion type & values */
  37. #DEFINE UnicodeMapVersion AS SInt32
  38. BEGIN enum
  39. _kUnicodeUseLatestMapping = -1
  40. _kUnicodeUseHFSPlusMapping = 4
  41. END ENUM
  42.  
  43. /* Types used in conversion */
  44.  
  45. BEGIN RECORD UnicodeMapping
  46. DIM unicodeEncoding AS TextEncoding
  47. DIM otherEncoding AS TextEncoding
  48. DIM mappingVersion AS UnicodeMapVersion
  49. END RECORD
  50.  
  51.  
  52. #DEFINE UnicodeMappingPtr AS POINTER TO UnicodeMapping
  53.  
  54. #DEFINE ConstUnicodeMappingPtr AS POINTER TO UnicodeMapping
  55. /* Control flags for ConvertFromUnicodeToText and ConvertFromTextToUnicode */
  56. BEGIN enum
  57. _kUnicodeUseFallbacksBit  = 0
  58. _kUnicodeKeepInfoBit   = 1
  59. _kUnicodeDirectionalityBits = 2
  60. _kUnicodeVerticalFormBit  = 4
  61. _kUnicodeLooseMappingsBit = 5
  62. _kUnicodeStringUnterminatedBit = 6
  63. _kUnicodeTextRunBit   = 7
  64. _kUnicodeKeepSameEncodingBit = 8
  65. _kUnicodeForceASCIIRangeBit = 9
  66. _kUnicodeNoHalfwidthCharsBit = 10
  67. _kUnicodeTextRunHeuristicsBit = 11
  68. END ENUM
  69.  
  70. BEGIN enum
  71. _kUnicodeUseFallbacksMask = 1 <<_kUnicodeUseFallbacksBit
  72. _kUnicodeKeepInfoMask  = 1 <<_kUnicodeKeepInfoBit
  73. _kUnicodeDirectionalityMask = 3 <<_kUnicodeDirectionalityBits
  74. _kUnicodeVerticalFormMask = 1 <<_kUnicodeVerticalFormBit
  75. _kUnicodeLooseMappingsMask = 1 <<_kUnicodeLooseMappingsBit
  76. _kUnicodeStringUnterminatedMask = 1 <<_kUnicodeStringUnterminatedBit
  77. _kUnicodeTextRunMask   = 1 <<_kUnicodeTextRunBit
  78. _kUnicodeKeepSameEncodingMask = 1 <<_kUnicodeKeepSameEncodingBit
  79. _kUnicodeForceASCIIRangeMask = 1 <<_kUnicodeForceASCIIRangeBit
  80. _kUnicodeNoHalfwidthCharsMask = 1 <<_kUnicodeNoHalfwidthCharsBit
  81. _kUnicodeTextRunHeuristicsMask = 1 <<_kUnicodeTextRunHeuristicsBit
  82. END ENUM
  83.  
  84. /* Values for kUnicodeDirectionality field */
  85. BEGIN enum
  86. _kUnicodeDefaultDirection = 0
  87. _kUnicodeLeftToRight   = 1
  88. _kUnicodeRightToLeft   = 2
  89. END ENUM
  90.  
  91. /* Directionality masks for control flags */
  92. BEGIN enum
  93. _kUnicodeDefaultDirectionMask =_kUnicodeDefaultDirection <<_kUnicodeDirectionalityBits
  94. _kUnicodeLeftToRightMask  =_kUnicodeLeftToRight <<_kUnicodeDirectionalityBits
  95. _kUnicodeRightToLeftMask  =_kUnicodeRightToLeft <<_kUnicodeDirectionalityBits
  96. END ENUM
  97.  
  98. /* Control flags for TruncateForUnicodeToText: */
  99. /*
  100.    Now TruncateForUnicodeToText uses control flags from the same set as used by
  101.    ConvertFromTextToUnicode, ConvertFromUnicodeToText, etc., but only
  102.    kUnicodeStringUnterminatedMask is meaningful for TruncateForUnicodeToText.
  103.    
  104.    Previously two special control flags were defined for TruncateForUnicodeToText:
  105.     kUnicodeTextElementSafeBit = 0
  106.     kUnicodeRestartSafeBit = 1
  107.    However, neither of these was implemented.
  108.    Instead of implementing kUnicodeTextElementSafeBit, we now use
  109.    kUnicodeStringUnterminatedMask since it accomplishes the same thing and avoids
  110.    having special flags just for TruncateForUnicodeToText
  111.    Also, kUnicodeRestartSafeBit is unnecessary, since restart-safeness is handled by
  112.    setting kUnicodeKeepInfoBit with ConvertFromUnicodeToText.
  113.    If TruncateForUnicodeToText is called with one or both of the old special control
  114.    flags set (bits 0 or 1), it will not generate a paramErr, but the old bits have no
  115.    effect on its operation.
  116. */
  117.  
  118. /* Filter bits for filter field in QueryUnicodeMappings and CountUnicodeMappings: */
  119. BEGIN enum
  120. _kUnicodeMatchUnicodeBaseBit = 0
  121. _kUnicodeMatchUnicodeVariantBit = 1
  122. _kUnicodeMatchUnicodeFormatBit = 2
  123. _kUnicodeMatchOtherBaseBit = 3
  124. _kUnicodeMatchOtherVariantBit = 4
  125. _kUnicodeMatchOtherFormatBit = 5
  126. END ENUM
  127.  
  128. BEGIN enum
  129. _kUnicodeMatchUnicodeBaseMask = 1 <<_kUnicodeMatchUnicodeBaseBit
  130. _kUnicodeMatchUnicodeVariantMask = 1 <<_kUnicodeMatchUnicodeVariantBit
  131. _kUnicodeMatchUnicodeFormatMask = 1 <<_kUnicodeMatchUnicodeFormatBit
  132. _kUnicodeMatchOtherBaseMask = 1 <<_kUnicodeMatchOtherBaseBit
  133. _kUnicodeMatchOtherVariantMask = 1 <<_kUnicodeMatchOtherVariantBit
  134. _kUnicodeMatchOtherFormatMask = 1 <<_kUnicodeMatchOtherFormatBit
  135. END ENUM
  136.  
  137. /* Control flags for SetFallbackUnicodeToText */
  138. BEGIN enum
  139. _kUnicodeFallbackSequencingBits = 0
  140. END ENUM
  141.  
  142. BEGIN enum
  143. _kUnicodeFallbackSequencingMask = 3 <<_kUnicodeFallbackSequencingBits
  144. _kUnicodeFallbackInterruptSafeMask = 1 << 2     /* To indicate that caller fallback routine doesnユt move memory*/
  145. END ENUM
  146.  
  147. /* values for kUnicodeFallbackSequencing field */
  148. BEGIN enum
  149. _kUnicodeFallbackDefaultOnly = 0
  150. _kUnicodeFallbackCustomOnly = 1
  151. _kUnicodeFallbackDefaultFirst = 2
  152. _kUnicodeFallbackCustomFirst = 3
  153. END ENUM
  154.  
  155.  
  156.